/* 
  高级组件：高阶函数的升级版
    1. 函数(组件)可以作为参数
    2. 函数(组件)可以作为返回值

  在React中有函数式组件和类组件，都可以用高阶函数进行包装处理。
    1. 函数形参可以接收待加工的组件，
    2. 函数内部可以返回加工后的组件
*/

import React, { Component } from 'react';
import { AddTime, AddVersion } from "../HOC/AddTime";
import { withRouter } from "react-router-dom";


// 以下为装饰器的写法，需要 webpack 和 vsCode 配置一下才可以
@AddTime
@AddVersion
@withRouter
class Button extends Component {
  render() {
    console.log('Button组件增强了props', this.props);
    return (
      <button>按钮组件</button>
    );
  }
}

// 由于高阶组件其实就是把类组件
// export default withRouter(AddTime(AddVersion(Button)));
export default Button;